#ifndef VENUS_GEOMETRY_DIFF_GEOMETRY_H
#define VENUS_GEOMETRY_DIFF_GEOMETRY_H

#include "common/venus.h"
#include "point.h"
#include "normal.h"

namespace venus {
  class Shape;
  struct DifferentialGeometry {
    DifferentialGeometry() : u(0), v(0) { }
    // DifferentialGeometry Public Methods
    DifferentialGeometry(const Point &pos, const Normal &n, float u, float v, 
        const Shape* shape) : pos(pos), n(n), u(u), v(v), shape(shape) { }
    //void ComputeDifferentials(const RayDifferential &r) const;

    // DifferentialGeometry Public Data
    Point pos;
    Normal n;
    float u, v;
    const Shape *shape;			
  };
}

#endif
